请教一个简单的java日志怎样写

Python023

请教一个简单的java日志怎样写,第1张

关于java日志,下面以Log4j为例子说明(供参考)。

1、导包(Log4j所依赖的jar包)

2、配置属性文件。如下:

3、遍写调用日志方法的接口

public interface LoggerUtil {

 

    // 得到Logger,用于打印日志

    Logger logger = Logger.getLogger(LoggerUtil.class)

}

4、使用Log4j

//删除数据

    @RequestMapping("/delete.do")

    public String delete(Students students) {

 

        try {

             

            stuService.delete(students)

        } catch (Exception e) {

            // 直接使用

            LoggerUtil.logger.error(e.getMessage())

        }

        return "redirect:selectAll.do"

    }

代码如下,自己测试哦

import java.awt.event.ActionListener

import javax.swing.*

import java.awt.*

import java.awt.Color

import java.awt.event.ActionEvent

import javax.swing.tree.*

import javax.swing.event.*

import java.io.*

import java.util.*

import javax.swing.JColorChooser

class Diary extends JFrame implements ActionListener,TreeSelectionListener{

JMenuBar menubar

JMenu menu1,menu2,menu3,menu4,menu5,menu6

JMenuItem item1,item2,item3,item4,item5,item6,item7,item8,item52,item61,item62,item63,item64

JTextArea text=new JTextArea(20,40)

JButton b_save=new JButton("保存日志")

JButton b_del=new JButton("删除日志")

JButton b3=new JButton("锁定日志")

JButton b4=new JButton("解除锁定")

JSplitPane split1,split2

JScrollPane scroll1,scroll2

JPanel p

JTree tree=null

int i=0

DefaultMutableTreeNode root

DefaultMutableTreeNode month[]=new DefaultMutableTreeNode[13]

Diary(){

final JFrame frame = this

menubar=new JMenuBar()

menu4=new JMenu("登陆")

item6=new JMenuItem("密码登陆")

menu4.add(item6)

menubar.add(menu4)

menu1=new JMenu("文件")

item1=new JMenuItem("新建")

item2=new JMenuItem("退出")

menu1.add(item1)

menu1.add(item2)

menubar.add(menu1)

menu2=new JMenu("编辑")

item3=new JMenuItem("复制")

item4=new JMenuItem("剪切")

item5=new JMenuItem("粘贴")

item52=new JMenuItem("全选")

menu2.add(item3)

menu2.add(item4)

menu2.add(item5)

menu2.add(item52)

menubar.add(menu2)

menu3=new JMenu("设置")

//item6=new JMenuItem("密码设置")

item63=new JMenuItem("设置字体颜色")

item64=new JMenuItem("设置背景颜色")

item61=new JMenuItem("锁定编辑区")

item62=new JMenuItem("解除锁定")

//menu3.add(item6)

menu3.add(item63)

menu3.add(item64)

menu3.add(item61)

menu3.add(item62)

menubar.add(menu3)

menu4=new JMenu("查看")

item7=new JMenuItem("状态栏")

menu4.add(item7)

menubar.add(menu4)

menu5=new JMenu("帮助")

item8=new JMenuItem("我的日记本信息")

menu5.add(item8)

menubar.add(menu5)

setJMenuBar(menubar)//把菜单条添加到窗口顶端

Container con=getContentPane() //调用getContentPane()方法获的内容面板

root=new DefaultMutableTreeNode("日历记事本")//结合树的输入与输出建立一个日历记事本

for(i=1i<=12i++)

{

month[i]=new DefaultMutableTreeNode(""+i+"月")

root.add(month[i])

}

for(i=1i<=12i++)

{

if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)

{

for(int j=1j<=31j++)

month[i].add(new DefaultMutableTreeNode(j+"日"))

}

else if(i==4||i==6||i==9||i==11)

{

for(int j=1j<=30j++)

month[i].add(new DefaultMutableTreeNode(j+"日"))

}

else

{

for(int j=1j<=28j++)

month[i].add(new DefaultMutableTreeNode(j+"日"))

}

}

tree=new JTree(root)

p=new JPanel() //使用JPanel创建一个面板

p.add(b_save)p.add(b_del)p.add(b3)p.add(b4) //把这4个按钮组件假如面板中

scroll1=new JScrollPane(text,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED)//把文本框放入滚动窗格中

b_save.addActionListener((ActionListener) this) //按钮的监听器

b_del.addActionListener((ActionListener) this)

scroll2=new JScrollPane(tree)

split1=new JSplitPane(JSplitPane.VERTICAL_SPLIT,true,p,scroll1) //水平拆分这4个按钮和文本区

split2=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,scroll2,split1) //竖直拆分树行日历和文本按钮区

item1.addActionListener((ActionListener) this) //菜单栏的监听器

item2.addActionListener((ActionListener) this)

item3.addActionListener((ActionListener) this)

item4.addActionListener((ActionListener) this)

item5.addActionListener((ActionListener) this)

item6.addActionListener((ActionListener) this)

item7.addActionListener((ActionListener) this)

item8.addActionListener((ActionListener) this)

item52.addActionListener((ActionListener) this)

item61.addActionListener((ActionListener) this)

item62.addActionListener((ActionListener) this)

item63.addActionListener((ActionListener) this)

tree.addTreeSelectionListener((TreeSelectionListener) this) //树形日历的监听器

con.setLayout(new FlowLayout()) //设置布局

setSize(600,500) //设置窗体的大小

Dimension screen=Toolkit.getDefaultToolkit().getScreenSize()

setLocation((screen.width-300)/2,(screen.height-220)/2)

setResizable(false) //设置窗口不可以调节大小

setVisible(true)//设置窗口为可视

con.add(split2) //把树形日历和按钮,文本区都加入到内容面板中

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE) //单击关闭图标后关闭窗口

}

public void valueChanged(TreeSelectionEvent e) //处理树形事件的接口

{

text.setText(null)

if(e.getSource()==tree)

{

DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent()

if(node.isLeaf())

{

String str=node.toString()

for( i=0i<=12i++)

{

if(node.getParent()==month[i])

{

try{String temp=null

File f=new File(node.getParent().toString()+str+".text")

FileReader file=new FileReader(f)

BufferedReader in=new BufferedReader(file)

while((temp=in.readLine())!=null)

text.append(temp+'\n')

file.close()

in.close()

}

catch(Exception el){}

}

}

}

}

}

//}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==b_save) //保存按钮的实现方法

{

DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent()

String str=node.toString()

if(node.isLeaf())

{

try{

File f=new File(node.getParent().toString()+str+".text")

FileWriter tofile=new FileWriter(f)

BufferedWriter out=new BufferedWriter(tofile)

out.write(text.getText(),0,(text.getText()).length())

out.flush()

tofile.close()out.close()

}

catch(Exception el){}

}

}

else if(e.getSource()==b_del)

{

int n=JOptionPane.showConfirmDialog(this, "该文件还没有保存,确定要删除吗?","确认对话框", JOptionPane.YES_NO_OPTION)

if(n==JOptionPane.YES_OPTION)

{

DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent()

String str=node.toString()

if(node.isLeaf())

{

File f=new File(node.getParent().toString()+str+".text")

f.delete()

}

}

else if(n==JOptionPane.NO_OPTION)

{

System.exit(0)

}

}

else if(e.getSource()==b3)

{

text.setEditable(false)

}

else if(e.getSource()==b4)

{

text.setEditable(true)

}

String selected=e.getActionCommand()//获取命令

if(selected.equals("退出")){ //执行"退出"命令

dispose()

}

else if(selected.equals("新建")){

text.setText("")

}

else if(selected.equals("复制"))

{

text.copy()

}

else if(selected.equals("剪切"))

{

text.cut()

}

else if(selected. equals("粘贴"))

{

text.paste()

}

else if(selected.equals("全选"))

{

text.selectAll()

}

else if(selected.equals("密码登陆"))

{

LoginWindow login=new LoginWindow()

}

else if(selected.equals("设置字体颜色")){

Color newColor=JColorChooser.showDialog(this, "选择字体颜色", text.getForeground())

if(newColor !=null)

{

text.setForeground(newColor)

}

}

else if(selected.equals("设置背景颜色"))

{

Color newColor=JColorChooser.showDialog(this, "选择背景颜色", text.getBackground())

if(newColor !=null)

{

text.setBackground(newColor)

}

}

else if(selected.equals("锁定编辑区"))

{

text.setEditable(false)

}

else if(selected.equals("解除锁定"))

{

text.setEditable(true)

}

}

}

class LoginWindow extends JFrame implements ActionListener {

JPanel p1=new JPanel() //定义并建立面板

JPanel p2=new JPanel()

JPanel p3=new JPanel()

JPanel p4=new JPanel()

JPanel p5=new JPanel()

JTextField text1=new JTextField(15)//用户名文本框

JPasswordField text2=new JPasswordField(15)//密码域

JButton ok=new JButton("确定")

JButton cancel=new JButton("取消")

LoginWindow()

{

setBackground(Color.DARK_GRAY) //设置背景颜色

Container con=getContentPane() //取出内容面板

con.setLayout(new GridLayout(5,1)) //设置布局为5行1列

p2.add(new JLabel("用户名:"))p2.add(text1) //将组件添加到中间容器

p3.add(new JLabel("密码"))p3.add(text2)

p4.add(ok)p4.add(cancel)

ok.addActionListener(this) //注册事件监听器

cancel.addActionListener(this)

text1.addActionListener(this)

text2.addActionListener(this)

con.add(p1)con.add(p2)con.add(p3)con.add(p4)con.add(p5)//将面板添加到内容面板

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE) //单击关闭图标后关闭窗口

setSize(300,220) //设置窗口的大小

Dimension screen=Toolkit.getDefaultToolkit().getScreenSize()

setLocation((screen.width-300)/2,(screen.height-220)/2)

setTitle("登录窗口")

setResizable(false) // 不让用户改变窗口大小

setVisible(true)

}

public void actionPerformed(ActionEvent e) {

if(e.getSource()==ok||e.getSource()==text2){

if(text1.getText().trim().equals("meijianwen") &&text2.getText().trim().equals("070341320")){

dispose() //关闭登陆窗口

}

else{

JOptionPane.showMessageDialog(null, "用户名或密码错误!")

text1.requestFocus() //设置焦点

text1.setSelectionStart(0) //设置选中文本开始位置

text1.setSelectionEnd(text1.getText().length())

}

}

else if(e.getSource()==cancel){//单击取消按钮

dispose()

//System.exit(0)

}

else if(e.getSource()==text1)//在用户名文本框按回车焦点移到密码域

text2.requestFocus()

}

}

public class MyDiary

{

public static void main(String args[])

{

JFrame.setDefaultLookAndFeelDecorated(true)

Font font=new Font("JFrame",Font.PLAIN,14) //定义字体

Enumeration keys=UIManager.getLookAndFeelDefaults().keys()//枚举风格关键字

while(keys.hasMoreElements())

{

Object key=keys.nextElement()

// if(((String)key).equals("Menu.foreground")||((String)key).equals("MenuItem.foreground"))

// UIManager.put(key,Color.DARK_GRAY) //设置菜单文字颜色

if(UIManager.get(key)instanceof Font)UIManager.put(key,font)

}

Diary win=new Diary()

win.validate()

}

}